home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Matrix Promo Screensaver
/
The Matrix - Promo Screensaver.iso
/
EN
/
DCOM95.EXE
/
RCDATA
/
CABINET
/
relnotes.txt
< prev
next >
Wrap
Text File
|
1999-03-09
|
29KB
|
708 lines
DCOM95 1.3
Release Notes
Last Modified: September 14, 1998
DCOM95 provides Distributed COM support for Microsoft« Windows« 95.
The DCOM wire protocol transparently provides support for reliable,
secure, and efficient communication between Component Object
Model (COM) components such as ActiveX« controls, scripts, and
Java applets residing on different machines in a LAN, a WAN, or on
the Internet. With DCOM, your application can be distributed across
locations that make the most sense to your customer and to the
application.
For more in-depth information, see the DCOM Technical overview
available on the Microsoft COM home page,
http://www.microsoft.com/com/.
Contents
========
I. New Features
II. Bug Fixes
III. Known Issues
IV. Differences from DCOM on Windows NT
V. Redistribution
VI. Support & Resources
VII. File List
I. New Features
---------------
Replacing DCOM95 with Older Version Prohibited
In previous releases of DCOM95, you could replace a newer
version of DCOM95 with an older version of DCOM95. Version
numbers are now checked on installation, and you are not
permitted to install an older version over a newer version. This
change will avoid problems with incompatible versions of DLLs.
Visual Studio 6.0 Process Monitoring Support
In support of Visual Studio 6.0, DCOM95 provides monitoring
information for developers to help them understand the behavior,
performance, and structure of their application. If you are using
Visual Studio Analyzer on a computer that is running Windows 95,
you should always use this version of DCOM95.
New Directory Created by Setup
Setup creates a directory called DCOM95 under your system
directory. The end-user license agreement and other files are
stored there. Setup also creates a subdirectory of DCOM95 called
OLDOLE, into which the old DCOM95 or OLE binaries are backed
up. These files are restored if you later uninstall DCOM95.
COM Internet Services
The COM Internet Services (CIS) enable clients and servers to be
connected over the Internet using COM. CIS consists of
* A new DCOM protocol, Tunneled TCP
* A new moniker type, OBJREF moniker
* A new CISCNFG utility
For CIS client support in Windows 95, you must install both DCOM95
and DCOMCFG. Then use the CISCNFG tool, which is installed when you
install the DCOM configuration utility, to change the registry key
that defines which protocol to use for remote processes. In the
Command Prompt window, enter:
ciscnfg <protocol>
Where <protocol> is:
* rpc to use RPC
* http to use HTTP
* tcp_http to try TCP first and then, if the server times out,
to try HTTP.
The ciscnfg command with no argument provides usage
information.
No SDK updates are required to use the Tunneled TCP protocol.
There are a few updates for OBJREF monikers.
CreateObjrefMoniker
Creates an OBJREF moniker based on a pointer to an object.
WINOLEAPI CreateObjrefMoniker(
LPUNKNOWN pUnk, //Pointer to the object
LPMONIKER *ppMk //Address of pointer to OBJREF moniker
);
Parameters
pUnk
Pointer to the IUnknown interface on the object that the moniker
is to represent.
ppMk
Address of a pointer to the IMoniker interface on the OBJREF
moniker created.
Return Values
This function supports the standard return values
E_OUTOFMEMORY and E_UNEXPECTED, as well as the
following:
S_OK
The OBJREF moniker was successfully created.
Remarks
Clients use OBJREF monikers to obtain a marshaled pointer to a
running object in the serverÆs address space.
The server typically calls CreateObjrefMoniker to create an
OBJREF moniker and then calls IMoniker::GetDisplayName, and
finally releases the moniker. The display name for an OBJREF
moniker is of the form:
OBJREF:nnnnnnnn
Where nnnnnnnn is an arbitrarily long base-64 encoding that
encapsulates the machine location, process endpoint, and interface
pointer ID (IPID) of the running object.
The display name can then be transferred to the client as text. For
example, the display name can reside on an HTML page that the
client downloads.
The client can pass the display name to MkParseDisplayName,
which creates an OBJREF moniker based on the display name. A
call to the monikerÆs IMoniker::BindToObject method then obtains
a marshaled pointer to the running instance on the server.
For example, a server-side COM component contained in an active
server page can create an OBJREF moniker, obtain its display
name, and write the display name to the HTML output that is sent to
the client browser. A script that runs on the client side can use the
display name to get access to the running object itself. A client-side
Visual Basic script, for instance, could store the display name in a
variable called strMyName and include this line:
objMyInstance = GetObject(strMyName)
The script engine internally makes the calls to
MkParseDisplayName and IMoniker::BindToObject, and the
script can then use objMyInstance to refer directly to the running
object.
If the running object uses static IPIDs and the server process
always runs on the same computer at a well-known endpoint, the
display name of the OBJREF moniker will always be the same. In
that case, the server can store the display name instead of
calculating it each time it receives a request for the object.
IMoniker - OBJREF Moniker Implementation
OBJREF monikers represent a reference to an object instance that
is running on an out-of-process server, either locally or remotely.
The moniker identifies the object instance and the computer the
object is running on.
An OBJREF moniker is similar in many ways to a pointer moniker,
except that the running object is out-of-process. A client can call
IMoniker::BindToObject on an OBJREF moniker and use the
pointer it obtains to access the running object, regardless of its
location.
An important distinction from a pointer moniker is that the display
name of an OBJREF moniker can be embedded in an HTML page,
and the running object represented by the moniker can be bound by
a client script, applet, or ActiveX control.
When to Use
The primary use for an OBJREF moniker is to obtain access to a
running object instance over the Internet. An active server page or
some other means of generating dynamic HTML content places the
display name of an OBJREF moniker in a parameter to an applet or
an ActiveX control. The code of the applet or control calls
CreateObjrefMoniker to create an OBJREF moniker based on the
display name, and it then calls IMoniker::BindToObject on the
resulting OBJREF moniker to get access to the running object
instance. The active server page then marshals a pointer to the
running object back to the pageÆs client.
Remarks
IMoniker::BindToObject. For OBJREF monikers, the pmkToLeft
parameter must be NULL. Because the OBJREF moniker
represents a running object, no activation takes place. If the
represented object is no longer running, BindToObject fails with
E_UNEXPECTED.
IMoniker::BindToStorage. This method obtains a marshaled
pointer to the requested interface on the storage that contains the
running object. Because the OBJREF moniker represents a running
object, no activation takes place. If the represented object is no
longer running, BindToStorage fails with E_UNEXPECTED.
IMoniker::Reduce. This method returns
MK_S_REDUCED_TO_SELF and passes back the same moniker.
IMoniker::ComposeWith. If pmkRight is an anti-moniker, the
returned moniker is NULL. If pmkRight is a composite whose
leftmost component is an anti-moniker, the returned moniker is the
composite with the leftmost anti-moniker removed. If pmkRight is
neither an anti-moniker nor a composite moniker whose leftmost
component is an anti-moniker, then the method checks the
fOnlyIfNotGeneric parameter. If it is FALSE, the method combines
the two monikers into a generic composite; if it is TRUE, the method
sets *ppmkComposite to NULL and returns
MK_E_NEEDGENERIC.
IMo